Intelligent ringer in smartphones

ABSTRACT

Various systems and methods for an intelligent ringer in smartphones are described herein. A system for implementing intelligent notifications includes a communication module to receive at a compute device, an indication of an incoming communication, a notification module to present from the compute device, a notification of the incoming communication, an audio processing module to determine whether a change in ambient noise occurs around the compute device while the notification is being presented, and a rules module to reference a rules engine to determine an action based on whether the change in ambient noise occurs, where the notification module is to present the notification in accordance with the action.

TECHNICAL FIELD

Embodiments described herein generally relate to mobile devicemanagement and in particular, to an intelligent ringer in smartphones.

BACKGROUND

Many mobile phones are configurable to operate in a normal mode or aquiet mode. In a normal mode the mobile phone may use an audible ringtone to notify the user of an incoming call, notifications, or otheralerts. In a quiet mode, such audible ring tones or alerts may besuppressed or reduced.

BRIEF DESCRIPTION OF THE DRAWINGS

In the drawings, which are not necessarily drawn to scale, like numeralsmay describe similar components in different views. Like numerals havingdifferent letter suffixes may represent different instances of similarcomponents. Some embodiments are illustrated by way of example, and notlimitation, in the figures of the accompanying drawings in which:

FIG. 1 is a schematic drawing illustrating a system for an intelligentringer in smartphones, according to an embodiment;

FIG. 2 is a data and control flow diagram illustrating a process for anintelligent ringer in smartphones, according to an embodiment;

FIG. 3 is a block diagram illustrating a compute device for implementingintelligent notifications, according to an embodiment;

FIG. 4 is a flowchart illustrating a method of implementing intelligentnotifications, according to an embodiment; and

FIG. 5 is a block diagram illustrating an example machine upon which anyone or more of the techniques (e.g., methodologies) discussed herein mayperform, according to an example embodiment.

DETAILED DESCRIPTION

Systems and methods described herein provide an intelligent ringer in asmartphone. Mobile phones are eminently useful devices. They may be usedby themselves or in conjunction with other devices. For example, amobile phone may be paired with another device such as a Bluetoothheadset or a vehicle infotainment system. When an incoming call isdetected, the phone or an associated device may ring. Many phonesprovide a silent or quiet mode so that the user may reduce or eliminatethe audible ringing. Such silent or quiet modes are typically enabledmanually by the user. In some cases, the mobile phone may beconfigurable to enter and exit the silent/quiet mode on a schedule. Forexample, a user may configure a phone to enter silent mode at 11:00 PMand then resume the normal mode at 6:00 AM. While having a manual orscheduled mechanism to enter a silent mode is useful, it may be onerousfor the user to constantly enter and exit silent mode manually or mayprovide unintended effects when the person's schedule is interrupted(e.g., by working late, attending a party, attending to a crying baby,etc.). Exiting mechanisms fail to provide a flexible or intelligentsolution to this problem.

The systems and methods described herein provide a mechanism toautomatically shift between standard and silent modes based on userinput and context. For example, while tending to a fussy baby, a user'sphone may begin to ring. The ringing may cause further stress to thebaby, so instinctively the users says “shhh” to the phone. While notspecifically programmed to do so, because of the context (e.g., thesound of a crying baby) and the user action (e.g., saying “shhh”), thephone understands the “shhh” and changes notification setting forincoming calls from an audible ring to a vibrate mode. Later, the usermay interact with the phone and confirm the adjustment was proper orotherwise manually modify the inferential rule created by the phone.

While some examples describe a phone and ringing during an incomingcall, it is understood that this disclosure encompasses any type ofdevice and any type of notification. For example, notifications of newtext messages, emails, social networking posts, or the like on acomputer, laptop, hybrid, wearable device, tablet, in-vehicleinfotainment system, or the like, may be managed by systems andmechanisms described herein.

FIG. 1 is a schematic drawing illustrating a system 100 for anintelligent ringer in smartphones, according to an embodiment. Thesystem 100 includes a compute device 102 and a sensor 104, which arecommunicatively coupled via a network 106. The compute device 102 may bea device such as a smartphone, cellular telephone, mobile phone, laptopcomputer, tablet computer, music player, wearable device (e.g., watch,glasses-based device, etc.), desktop, laptop, hybrid, in-wall, or othernetworked device. The compute device 102 includes a speaker 108 and anon-audible alert mechanism 110. The non-audible alert mechanism 110 maybe a mechanical vibration motor or an electronic display. When in anormal mode, the compute device 102 may alert a user of an incoming callor notification using the audible alert mechanism (e.g., a ringtone).When operating in silent mode, the compute device 102 may alert the userwith a vibration or vibration pattern, a visual notification, orcombinations of non-audible alerts.

The sensor 104 may be remote from the compute device 102 or incorporatedinto the compute device 102. The sensor 104 may be paired with thecompute device 102 using a short-range wireless network, such asBluetooth®. The sensor 104 may be one of any type of sensor, includingbut not limited to, a camera, a posture sensor, a biometric sensor(e.g., heart rate, skin temperature, perspiration, etc.), locationsensor, a microphone, an accelerometer, motion sensor, ambient lightsensor, or the like. While only one sensor 104 is illustrated in FIG. 1,it is understood that more than one sensor 104 may be implemented andthat some sensors may be incorporated into the compute device 102, whileother sensors may be separate from the compute device 102.

The network 106 may include local-area networks (LAN), wide-areanetworks (WAN), wireless variant networks (e.g., wireless LAN (WLAN)such as a network conforming to an IEEE 802.11 family of standards or awireless WAN (WWAN) such as a cellular network), the Public SwitchedTelephone Network (PSTN) network, ad hoc networks, personal areanetworks (e.g., Bluetooth) or other combinations or permutations ofnetwork protocols and network types. The network 106 may include asingle local area network (LAN) or wide-area network (WAN), orcombinations of LANs or WANs, such as the Internet. The various devicesin FIG. 1 may be coupled to the network 106 via one or more wired orwireless connections.

The compute device 102 may also be communicatively coupled to the serversystem 112. The server system 112 may provide one of a variety ofservices including, but not limited to, a social network platform, aretail shopping platform, a weather forecast or history, an appointmentcalendar, email, text messaging, instant messaging, voice over InternetProtocol (VOIP), or the like.

In use, the compute device 102 may sense an incoming communication, suchas a phone call. The compute device 102 may provide a notification ofthe incoming communication using a default or last used notificationmechanism. Notification mechanisms may include audible ringing withvarious chimes, music, or tones, and in various volumes; vibration invarious patterns and intensities; visual alerts such as flashing adisplay screen, or presenting a notification icon, message, or screen;or combinations of these. For example, the default notificationmechanism for an incoming phone call may be an audible ringing. Beforeor during the notification (e.g., ringing), the compute device 102 maymonitor ambient noise using the sensor 104 (e.g., a microphone). If auser makes an audible signal, such as a voice command, such as “bequiet”, or a non-language command such as “shhh”, the compute device 102may recognize the audible signal and process it with a rules engine 114.The rules engine 114 may assess the situation based on contextualinformation, such as noise levels, time of day, or data from the serversystem 112 (e.g., appointment calendar). For example, the compute device102 may determine that it is 1:30 PM and that the user has a meetingscheduled for that time. Also, based on a location sensor (e.g., GPS orGLONASS), the compute device 102 may determine that the user is at workin a conference room. Using this contextual information and the audiblesignal from the user, the compute device 102 may reduce the volume ofthe notification or change the notification mechanism from audibleringing to a vibration. Depending on who the caller is, the computedevice 102 may not take any action. For example, if the caller is theuser's doctor, then the compute device 102 may continue to notify theuser with an audible ring.

The rules engine 114 may have a variety of contextual informationavailable to it, such as: where is the compute device 102, what is itspattern of motion (e.g., is it moving), what is the pattern of ambientlight, what is the pattern of ambient sound, how has the user reacted tocalls from this person in the past in similar contexts, the number ofcalls in immediate past and how they were answered, average length oftime spent with caller, hold behavior (e.g., is this caller more likelyto be put on hold), user's schedule (e.g., calendar events), instantmessaging status (e.g., busy, away, logged off), or the applicationproducing the notification (e.g., phone, instant messaging, socialnetwork notification, system notification, etc.), among others.

The rules engine 114 may have a variety of different responses to thecontextual information and the audible signal from the user including,but not limited to hanging up on the caller, intelligent assistantanswering the call, changing the ringer from loud to softer, changingthe notification from audible to vibrate to visual, or interrupt anexisting on-going call (e.g., notify the user that a call is on theother line).

FIG. 2 is a data and control flow diagram illustrating a process 200 foran intelligent ringer in smartphones, according to an embodiment. Theprocess 200 begins when a user obtains a new phone with a system forintelligent ringing installed. At block 202, the system on the phonebegins training. As the phone is used, it collects training data (block204). For example, when a phone call from a particular caller isreceived and the user answers, that information may be collected.Illustrative data includes various contextual data (block 206), such asthe phone's location, motion, ambient light or sound around the phone,call history, a user's schedule (e.g., appointment calendar), an instantmessaging status (e.g., busy, away, do not disturb, logged off, etc.),and other environmental or contextual data. Some or all of thecontextual data 206 may be stored in a data store 208. The data store208 may be at the phone or remote from the phone. Portions of the datastore 208 may be in one location with other portions at a differentlocation.

The contextual data (block 206) is implemented in a learning algorithm(block 210). The learning algorithm (block 210) creates or modifies oneor more behavioral rules or cascading rules (item 212). The behavioralrules 212 may be pre-set and installed (e.g., from the manufacturer orphone provider). The behavioral rules 212 may be created as the useruses the phone (e.g., based on training data).

Behavioral rules 212 are used by the system to determine how the phoneshould react under various circumstances. Cascading rules 212 arebehavioral rules that are used in as a situation progress. For example,when a phone initially rings, then a behavioral rule 212 may be used todetermine the volume or type of ring used. If the phone is not answeredin 10 seconds, then a cascading rule 212 may be used to determine afollow on action by the phone (e.g., increase volume if from animportant person).

Continuing with the example illustrated in FIG. 2, at block 214, thephone receives a call and initiates a notification (e.g., a ring, buzz,flashing, etc.). Based on the learning algorithm 210 and the behaviorrules 212, the action to take is determined (block 216). For example,the phone was last moved within the last ten minutes (e.g., detected viaan accelerometer in the phone), the phone is not currently in a vehicle(e.g., detected via GPS data), the phone is in a lighted area (e.g.,detected from a light meter), and the ambient sound is measured to be ata minimal level (e.g., detected via a microphone).

At block 218, the phone takes the action. For example, the phone mayprovide a notification with an audible ringer. The system on the phonemakes ongoing observations (block 220) of the environment, userresponse, contextual cues, etc. Additional contextual or environmentaldata may be obtained, such as a person's voice command, or a change inambient lighting.

At block 222, a user interface prompt is displayed asking the userwhether the initial action taken at block 218 was appropriate. If theuser indicates “no”, then the flow moves to block 224, where alternativeactions are displayed. Alternative actions may be actions like silencingthe ringer, changing the volume of the ringer, changing the notificationtype (e g, changing from an audible ring to a vibration notification),or the like. At block 226, the user chooses an alternative option orsets their own option. The process 200 returns to block 204, whereadditional training data is collected and the learning algorithm 210 isused to update the behavioral rules 212 based on the user's feedbackobtained at block 226.

Continuing with the example, the phone may be aware that it is ringingand that the ringer is audible at a medium volume level. While the phoneis ringing, it recognizes a change in ambient sound. The sound may be adog barking, a person saying “shhh” or “ring louder please”, a babycrying, or the sound of feet running. Because the phone has beenlearning the user behavior, it is able to match the changes in ambientsound to the actions that the user has previously taken. It does notmatter what the sound (or word) is just that the system may recognizethe sound (or lack of sound) and may then make an intelligent decisionwithout being preprogrammed to do so.

If the user does not respond to the user interface prompt, then theprocesses moves to block 228, where a cascading rule 212 may beimplemented. Whether a cascading rule 212 is used is determined by thelearning algorithm 210 and the contextual information (item 206), suchas the sound of someone saying “shhh.”

In general, the action (e.g., notification mode) may not change. Forexample, where there is no change in ambient sound, light, or othercontextual cues, then the action is not affected. However, if there is achange in some contextual data, then the system may use the learningalgorithm 210 to identify a cascading rule 212 or some other action.Cascading rules may be organized in a decreasing order of “harshness”with respect to the caller. The harshest response is to hang up on thecaller. The least harsh response is to provide a notification to therecipient. An example hierarchy of responses from least harsh to mostharsh include: audible ring, vibrate, intelligent answering service,voicemail, and disconnect. An intelligent answering service is one thatmay answer the caller, indicate that it is a non-human answeringservice, and provide an option to the caller to either leave a messageor have the intelligent answering service offer an option to wait as theservice attempts to contact and notify the recipient using a differentcommunication channel. For example, the intelligent answering servicemay attempt to contact the recipient with a text message, an alternatephone number, or by changing the notification (e.g., increasing volume).

In a slightly different scenario, the phone may look at its collectedcontextual data. In an example, the phone number (e.g., caller ID) is anumber that the user typically answers quickly while placing othercallers on hold. As a result, the caller is assumed to be important tothe user. Thus, because the caller is weighted as being important andthe phone was recently handled (e.g., from accelerometer data), thephone switches to audible ringer at a louder volume assuming that theuser is nearby.

After determining whether to implement a cascading rule 212 or maintainthe current behavioral rule 212, the process 200 proceeds to block 218,where the phone executes the new action or continues the existingaction.

The following table (TABLE 1) represents a series of samples taken overtime where sample (t) is a time stamp, event (e) is a type of event(e.g., phone call, alarm, etc.), a is light brightness in lumens, b islocation in latitude/longitude, c is ambient sound level (dB), d isambient velocity (e.g., simplified to movement value), and e is eventsub-type (e.g., call from, alarm name, etc.).

TABLE 1 sample (t) event (e) a b c d e 1.000 data gather 12 45.52,−122.98 35 2 none 3.000 data gather 13 45.52, −122.98 34 2 none 5.000data gather 12 45.52, −122.98 33 2 none 7.000 data gather 14 45.52,−122.98 36 2 none 9.000 data gather 13 45.52, −122.98 32 3 none 11.000data gather 12 45.52, −122.98 34 2 none 13.000 data gather 11 45.52,−122.98 33 2 none 15.000 data gather 12 45.52, −122.99 35 2 none 17.000data gather 12 45.52, −122.98 34 2 none 19.000 data gather 12 45.52,−122.98 35 2 none

During the sampling period shown there were no actions triggered by thephone. This may represent when the user is asleep and the phone is idleon a bedside table, for example. During a later sampling period(illustrated in TABLE 2), a phone call arrives at sample (t) of 48.000.At sample (t) 48.010, the system observes a data outlier where c is 100dB. This is apparently temporally related to the triggering of theaudible alarm at sample (t) of 48.000. At sample (t) 48.011, the phoneadjusts the ringer based on the loud ambient noise received at sample(t) 48.010. The noise detected at sample (t) 48.010 may be analyzed todetermine whether it represents a voice command or some otherrecognizable verbal phrase. Thus, the reactive action at sample (t)48.011 may be due to just the fact that there was a significant outlier(apparently) in response to the notification, or may be more insightfuland be in response to what the outlier data appears to represent.

TABLE 2 sample (t) event (e) a b c d e 45.000 data gather 12 45.52,−122.98 35 2 none 48.000 phone call, 14 45.52, −122.98 36 2 from audiblering John 48.010 data gather 13 45.52, −122.98 100 3 none 48.011 deviceset ringer to vibrate 48.012 data gather 11 45.52, −122.98 33 2 none48.020 phone call, 14 45.52, −122.98 36 2 from vibrate ring John 49.000data gather 11 45.52, −122.98 33 2 none 50.000 phone call, 14 45.52,−122.98 36 2 from vibrate ring John 51.000 data gather 12 45.52, −122.9834 2 none 52.000 phone call answered 53.000 log rule 75.000 data gather12 45.52, −122.98 35 2 none 76.000 data gather 12 45.52, −122.98 35 2none

The system (e.g., a smartphone) described above may continually gatherenvironmental data (e.g., sound, light, etc.). The system uses an event(e.g., smartphone ringing) to trigger analysis for either an existingrule or to develop a new rule. The primary mathematical functionsemployed in the analysis are outlier analysis and correlations. Thesystem is not intended to be perfect. Instead, as it gathers data, thedata is used to develop rules (behaviors), which may be reinforced overtime as it observes similar situations and reactions. The system isdesigned to learn as well as to train the user. The system trains theuser by encouraging behavior that creates an easily identified outlier.

FIG. 3 is a block diagram illustrating a compute device 102 forimplementing intelligent notifications, according to an embodiment. Thecompute device 102 may include a communication module 300, anotification module 302, an audio processing module 304, and a rulesmodule 306.

The communication module 300 may be configured to receive at a computedevice, an indication of an incoming communication. In variousembodiments, the incoming communication is one of a text message, aphone call, an email, or an alarm, or a system message.

The notification module 302 may be configured to present from thecompute device, a notification of the incoming communication. In anembodiment, to present the notification of the incoming communication,the notification module is to use an audible ring. In an embodiment, topresent the notification of the incoming communication, the notificationmodule is to use a vibrating ring. In an embodiment, to present thenotification of the incoming communication, the notification module isto display the notification on a display. In a further embodiment, thedisplay is integrated into the compute device. In alternativeembodiments, the display may be separate from the compute device, suchas a monitor on a wall, an in-vehicle in-dash system, or a wearabledevice (e.g., smartglasses).

The audio processing module 304 may be configured to determine whether achange in ambient noise occurs around the compute device while thenotification is being presented. In an embodiment, to determine whetherthe change in ambient noise occurs around the compute device while thenotification is being presented, the audio processing module is toactivate a microphone to sense ambient noise before presenting thenotification of the incoming communication, analyze ambient noise sensedby the microphone before and during presenting the notification of theincoming communication, and determine whether the ambient noise prior topresenting the notification was different than the ambient noise afterpresenting the notification by more than a threshold amount. In afurther embodiment, the audio processing module 304 is to identify asound token in the ambient noise during presenting the notification ofthe incoming communication. To reference the rules engine to determinethe action based on whether the change in ambient noise occurs, therules module 306 is to use the sound token to determine the action. Inan embodiment, the sound token includes a verbal command, and whereinthe action determined by the rules engine includes reducing anotification severity of the notification and presenting thenotification with the reduced notification severity. In a furtherembodiment, the notification severity includes a volume level.

The rules module 306 may be configured to reference a rules engine todetermine an action based on whether the change in ambient noise occurs.In an embodiment, the action is selected from an ordered list ofactions, the order based from a less harsh responsive mechanism to amore harsh responsive mechanism. Less harsh responsive mechanismsinclude ringing or vibrating, whereas more harsh responsive mechanismsinclude forwarding to voicemail or disconnecting.

In an embodiment, the rules engine includes a mapping from an inputsound token to an output notification type and severity level. Forexample, the sound token may be a verbal cue of “be quiet” and theoutput notification type may be “audible ring” with a severity level of“low,” which may represent a low ringer volume (e.g., 3 out of 10 on thevolume settings).

In an embodiment, the rules module 306 is to reference contextualinformation available to the compute device and use the contextualinformation in the rules engine to determine the action. In a furtherembodiment, the contextual information is one of a time, a date, ambientnoise level, ambient light level, a motion history of the computedevice, an identity of a sender of the communication, an identity of aperson proximate to the compute device, geographic location,temperature, or a history of similar notifications and resulting useractions.

The notification module 302 may be configured to modify the notificationin accordance with the action. In an embodiment, to modify thenotification in accordance with the action, the notification module 302is to increase a volume of the notification. In an embodiment, to modifythe notification in accordance with the action, the notification module302 is to decrease a volume of the notification. In an embodiment, tomodify the notification in accordance with the action, the notificationmodule 302 is to change from an audible notification to a vibratingnotification. In an embodiment, to modify the notification in accordancewith the action, the notification module 302 is to continue to presentthe notification without change.

In an embodiment, the compute device 102 includes a feedback module 308,to present a feedback interface to a user of the compute device andreceive feedback from the user. In such an embodiment, the feedback isincorporated into the rules engine, which may modify an action.

Various modules (e.g., modules 300 and 302) may be incorporated orintegrated into an application that executes on the compute device 102.The application may execute in the background and collect data from thesensors and populate a database, which may be accessed by one or moreother applications. Multiple applications may be developed to use thereal-time or historical data for various purposes.

FIG. 4 is a flowchart illustrating a method 400 of implementingintelligent notifications, according to an embodiment. At block 402, anindication of an incoming communication is received at a compute device.In various embodiments, the incoming communication is one of a textmessage, a phone call, an email, or an alarm, or a system message.

At block 404, a notification of the incoming communication is presentedfrom the compute device. In an embodiment, presenting the notificationof the incoming communication comprises using an audible ring. In anembodiment, presenting the notification of the incoming communicationcomprises using a vibrating ring. In an embodiment, presenting thenotification of the incoming communication comprises displaying thenotification on a display. In a further embodiment, the display isintegrated into the compute device.

At block 406, it is determined whether a change in ambient noise occursaround the compute device while the notification is being presented.

At block 408, a rules engine is referenced to determine an action basedon whether the change in ambient noise occurs. In an embodiment, theaction is selected from an ordered list of actions, the order based froma less harsh responsive mechanism to a more harsh responsive mechanism.In an embodiment, the rules engine includes a mapping from an inputsound token to an output notification type and severity level.

At block 410, the notification is modified in accordance with theaction. In an embodiment, modifying the notification in accordance withthe action comprises increasing a volume of the notification. In anembodiment, modifying the notification in accordance with the actioncomprises decreasing a volume of the notification. In an embodiment,modifying the notification in accordance with the action compriseschanging from an audible notification to a vibrating notification. In anembodiment, modifying the notification in accordance with the actioncomprises continuing to present the notification without change.

In an embodiment, determining whether the change in ambient noise occursaround the compute device while the notification is being presentedcomprises activating a microphone to sense ambient noise beforepresenting the notification of the incoming communication, analyzingambient noise sensed by the microphone before and during presenting thenotification of the incoming communication, and determining whether theambient noise prior to presenting the notification was different thanthe ambient noise after presenting the notification by more than athreshold amount. In a further embodiment, the method 400 includesidentifying a sound token in the ambient noise during presenting thenotification of the incoming communication, where referencing the rulesengine to determine the action based on whether the change in ambientnoise occurs comprises using the sound token to determine the action. Ina further embodiment, the sound token includes a verbal command, andwherein the action determined by the rules engine includes reducing anotification severity of the notification and presenting thenotification with the reduced notification severity. In anotherembodiment, the notification severity includes a volume level.

In an embodiment, the method 400 includes referencing contextualinformation available to the compute device and using the contextualinformation in the rules engine to determine the action. In a furtherembodiment, the contextual information is one of a time, a date, ambientnoise level, ambient light level, a motion history of the computedevice, an identity of a sender of the communication, an identity of aperson proximate to the compute device, geographic location,temperature, or a history of similar notifications and resulting useractions.

In an embodiment, the method 400 includes presenting a feedbackinterface to a user of the compute device, receiving feedback from theuser, and incorporating the feedback into the rules engine.

Embodiments may be implemented in one or a combination of hardware,firmware, and software. Embodiments may also be implemented asinstructions stored on a machine-readable storage device, which may beread and executed by at least one processor to perform the operationsdescribed herein. A machine-readable storage device may include anynon-transitory mechanism for storing information in a form readable by amachine (e.g., a computer). For example, a machine-readable storagedevice may include read-only memory (ROM), random-access memory (RAM),magnetic disk storage media, optical storage media, flash-memorydevices, and other storage devices and media.

Examples, as described herein, may include, or may operate on, logic ora number of components, modules, or mechanisms. Modules may be hardware,software, or firmware communicatively coupled to one or more processorsin order to carry out the operations described herein. Modules may behardware modules, and as such modules may be considered tangibleentities capable of performing specified operations and may beconfigured or arranged in a certain manner. In an example, circuits maybe arranged (e.g., internally or with respect to external entities suchas other circuits) in a specified manner as a module. In an example, thewhole or part of one or more computer systems (e.g., a standalone,client or server computer system) or one or more hardware processors maybe configured by firmware or software (e.g., instructions, anapplication portion, or an application) as a module that operates toperform specified operations. In an example, the software may reside ona machine-readable medium. In an example, the software, when executed bythe underlying hardware of the module, causes the hardware to performthe specified operations. Accordingly, the term hardware module isunderstood to encompass a tangible entity, be that an entity that isphysically constructed, specifically configured (e.g., hardwired), ortemporarily (e.g., transitorily) configured (e.g., programmed) tooperate in a specified manner or to perform part or all of any operationdescribed herein. Considering examples in which modules are temporarilyconfigured, each of the modules need not be instantiated at any onemoment in time. For example, where the modules comprise ageneral-purpose hardware processor configured using software; thegeneral-purpose hardware processor may be configured as respectivedifferent modules at different times. Software may accordingly configurea hardware processor, for example, to constitute a particular module atone instance of time and to constitute a different module at a differentinstance of time. Modules may also be software or firmware modules,which operate to perform the methodologies described herein.

FIG. 5 is a block diagram illustrating a machine in the example form ofa computer system 500, within which a set or sequence of instructionsmay be executed to cause the machine to perform any one of themethodologies discussed herein, according to an example embodiment. Inalternative embodiments, the machine operates as a standalone device ormay be connected (e.g., networked) to other machines. In a networkeddeployment, the machine may operate in the capacity of either a serveror a client machine in server-client network environments, or it may actas a peer machine in peer-to-peer (or distributed) network environments.The machine may be an onboard vehicle system, set-top box, wearabledevice, personal computer (PC), a tablet PC, a hybrid tablet, a personaldigital assistant (PDA), a mobile telephone, or any machine capable ofexecuting instructions (sequential or otherwise) that specify actions tobe taken by that machine. Further, while only a single machine isillustrated, the term “machine” shall also be taken to include anycollection of machines that individually or jointly execute a set (ormultiple sets) of instructions to perform any one or more of themethodologies discussed herein. Similarly, the term “processor-basedsystem” shall be taken to include any set of one or more machines thatare controlled by or operated by a processor (e.g., a computer) toindividually or jointly execute instructions to perform any one or moreof the methodologies discussed herein.

Example computer system 500 includes at least one processor 502 (e.g., acentral processing unit (CPU), a graphics processing unit (GPU) or both,processor cores, compute nodes, etc.), a main memory 504 and a staticmemory 506, which communicate with each other via a link 508 (e.g.,bus). The computer system 500 may further include a video display unit510, an alphanumeric input device 512 (e.g., a keyboard), and a userinterface (UI) navigation device 514 (e.g., a mouse). In one embodiment,the video display unit 510, input device 512 and UI navigation device514 are incorporated into a touch screen display. The computer system500 may additionally include a storage device 516 (e.g., a drive unit),a signal generation device 518 (e.g., a speaker), a network interfacedevice 520, and one or more sensors (not shown), such as a globalpositioning system (GPS) sensor, compass, accelerometer, or othersensor.

The storage device 516 includes a machine-readable medium 522 on whichis stored one or more sets of data structures and instructions 524(e.g., software) embodying or utilized by any one or more of themethodologies or functions described herein. The instructions 524 mayalso reside, completely or at least partially, within the main memory504, static memory 506, and/or within the processor 502 during executionthereof by the computer system 500, with the main memory 504, staticmemory 506, and the processor 502 also constituting machine-readablemedia.

While the machine-readable medium 522 is illustrated in an exampleembodiment to be a single medium, the term “machine-readable medium” mayinclude a single medium or multiple media (e.g., a centralized ordistributed database, and/or associated caches and servers) that storethe one or more instructions 524. The term “machine-readable medium”shall also be taken to include any tangible medium that is capable ofstoring, encoding or carrying instructions for execution by the machineand that cause the machine to perform any one or more of themethodologies of the present disclosure or that is capable of storing,encoding or carrying data structures utilized by or associated with suchinstructions. The term “machine-readable medium” shall accordingly betaken to include, but not be limited to, solid-state memories, andoptical and magnetic media. Specific examples of machine-readable mediainclude non-volatile memory, including but not limited to, by way ofexample, semiconductor memory devices (e.g., electrically programmableread-only memory (EPROM), electrically erasable programmable read-onlymemory (EEPROM)) and flash memory devices; magnetic disks such asinternal hard disks and removable disks; magneto-optical disks; andCD-ROM and DVD-ROM disks.

The instructions 524 may further be transmitted or received over acommunications network 526 using a transmission medium via the networkinterface device 520 utilizing any one of a number of well-knowntransfer protocols (e.g., HTTP). Examples of communication networksinclude a local area network (LAN), a wide area network (WAN), theInternet, mobile telephone networks, plain old telephone (POTS)networks, and wireless data networks (e.g., Wi-Fi, 3G, and 4G LTE/LTE-Aor WiMAX networks). The term “transmission medium” shall be taken toinclude any intangible medium that is capable of storing, encoding, orcarrying instructions for execution by the machine, and includes digitalor analog communications signals or other intangible medium tofacilitate communication of such software.

Additional Notes & Examples

Example 1 includes subject matter (such as a device, apparatus, ormachine) for implementing intelligent notifications comprising: acommunication module to receive at a compute device, an indication of anincoming communication; a notification module to present from thecompute device, a notification of the incoming communication; an audioprocessing module to determine whether a change in ambient noise occursaround the compute device while the notification is being presented; anda rules module to reference a rules engine to determine an action basedon whether the change in ambient noise occurs; wherein the notificationmodule is to modify the notification in accordance with the action.

In Example 2, the subject matter of Example 1 may include, wherein theincoming communication is one of a text message, a phone call, an email,or an alarm, or a system message.

In Example 3, the subject matter of any one of Examples 1 to 2 mayinclude, wherein to present the notification of the incomingcommunication, the notification module is to use an audible ring.

In Example 4, the subject matter of any one of Examples 1 to 3 mayinclude, wherein to present the notification of the incomingcommunication, the notification module is to use a vibrating ring.

In Example 5, the subject matter of any one of Examples 1 to 4 mayinclude, wherein to present the notification of the incomingcommunication, the notification module is to display the notification ona display.

In Example 6, the subject matter of any one of Examples 1 to 5 mayinclude, wherein the display is integrated into the compute device.

In Example 7, the subject matter of any one of Examples 1 to 6 mayinclude, wherein to determine whether the change in ambient noise occursaround the compute device while the notification is being presented, theaudio processing module is to: activate a microphone to sense ambientnoise before presenting the notification of the incoming communication;analyze ambient noise sensed by the microphone before and duringpresenting the notification of the incoming communication; and determinewhether the ambient noise prior to presenting the notification wasdifferent than the ambient noise after presenting the notification bymore than a threshold amount.

In Example 8, the subject matter of any one of Examples 1 to 7 mayinclude, wherein the audio processing module is to identify a soundtoken in the ambient noise during presenting the notification of theincoming communication; and wherein to reference the rules engine todetermine the action based on whether the change in ambient noiseoccurs, the rules module is to use the sound token to determine theaction.

In Example 9, the subject matter of any one of Examples 1 to 8 mayinclude, wherein the sound token includes a verbal command, and whereinthe action determined by the rules engine includes reducing anotification severity of the notification and presenting thenotification with the reduced notification severity.

In Example 10, the subject matter of any one of Examples 1 to 9 mayinclude, wherein the notification severity includes a volume level.

In Example 11, the subject matter of any one of Examples 1 to 10 mayinclude, wherein the action is selected from an ordered list of actions,the order based from a less harsh responsive mechanism to a more harshresponsive mechanism.

In Example 12, the subject matter of any one of Examples 1 to 11 mayinclude, wherein the rules engine includes a mapping from an input soundtoken to an output notification type and severity level.

In Example 13, the subject matter of any one of Examples 1 to 12 mayinclude, wherein the rules module is to: reference contextualinformation available to the compute device; and use the contextualinformation in the rules engine to determine the action.

In Example 14, the subject matter of any one of Examples 1 to 13 mayinclude, wherein the contextual information is one of a time, a date,ambient noise level, ambient light level, a motion history of thecompute device, an identity of a sender of the communication, anidentity of a person proximate to the compute device, geographiclocation, temperature, or a history of similar notifications andresulting user actions.

In Example 15, the subject matter of any one of Examples 1 to 14 mayinclude, wherein to modify the notification in accordance with theaction, the notification module is to increase a volume of thenotification.

In Example 16, the subject matter of any one of Examples 1 to 15 mayinclude, wherein to modify the notification in accordance with theaction, the notification module is to decrease a volume of thenotification.

In Example 17, the subject matter of any one of Examples 1 to 16 mayinclude, wherein to modify the notification in accordance with theaction, the notification module is to change from an audiblenotification to a vibrating notification.

In Example 18, the subject matter of any one of Examples 1 to 17 mayinclude, wherein to modify the notification in accordance with theaction, the notification module is to continue to present thenotification without change.

In Example 19, the subject matter of any one of Examples 1 to 18 mayinclude, a feedback module to: present a feedback interface to a user ofthe compute device; receive feedback from the user; and incorporate thefeedback into the rules engine.

Example 20 includes subject matter (such as a method, means forperforming acts, machine readable medium including instructions thatwhen performed by a machine cause the machine to performs acts, or anapparatus to perform) for implementing intelligent notificationscomprising: receiving at a compute device, an indication of an incomingcommunication; presenting from the compute device, a notification of theincoming communication; determining whether a change in ambient noiseoccurs around the compute device while the notification is beingpresented; referencing a rules engine to determine an action based onwhether the change in ambient noise occurs; and modifying thenotification in accordance with the action.

In Example 21, the subject matter of Example 20 may include, wherein theincoming communication is one of a text message, a phone call, an email,or an alarm, or a system message.

In Example 22, the subject matter of any one of Examples 20 to 21 mayinclude, wherein presenting the notification of the incomingcommunication comprises using an audible ring.

In Example 23, the subject matter of any one of Examples 20 to 22 mayinclude, wherein presenting the notification of the incomingcommunication comprises using a vibrating ring.

In Example 24, the subject matter of any one of Examples 20 to 23 mayinclude, wherein presenting the notification of the incomingcommunication comprises displaying the notification on a display.

In Example 25, the subject matter of any one of Examples 20 to 24 mayinclude, wherein the display is integrated into the compute device.

In Example 26, the subject matter of any one of Examples 20 to 25 mayinclude, wherein determining whether the change in ambient noise occursaround the compute device while the notification is being presentedcomprises: activating a microphone to sense ambient noise beforepresenting the notification of the incoming communication; analyzingambient noise sensed by the microphone before and during presenting thenotification of the incoming communication; and determining whether theambient noise prior to presenting the notification was different thanthe ambient noise after presenting the notification by more than athreshold amount.

In Example 27, the subject matter of any one of Examples 20 to 26 mayinclude, identifying a sound token in the ambient noise duringpresenting the notification of the incoming communication; and whereinreferencing the rules engine to determine the action based on whetherthe change in ambient noise occurs comprises using the sound token todetermine the action.

In Example 28, the subject matter of any one of Examples 20 to 27 mayinclude, wherein the sound token includes a verbal command, and whereinthe action determined by the rules engine includes reducing anotification severity of the notification and presenting thenotification with the reduced notification severity.

In Example 29, the subject matter of any one of Examples 20 to 28 mayinclude, wherein the notification severity includes a volume level.

In Example 30, the subject matter of any one of Examples 20 to 29 mayinclude, wherein the action is selected from an ordered list of actions,the order based from a less harsh responsive mechanism to a more harshresponsive mechanism.

In Example 31, the subject matter of any one of Examples 20 to 30 mayinclude, wherein the rules engine includes a mapping from an input soundtoken to an output notification type and severity level.

In Example 32, the subject matter of any one of Examples 20 to 31 mayinclude, referencing contextual information available to the computedevice; and using the contextual information in the rules engine todetermine the action.

In Example 33, the subject matter of any one of Examples 20 to 32 mayinclude, wherein the contextual information is one of a time, a date,ambient noise level, ambient light level, a motion history of thecompute device, an identity of a sender of the communication, anidentity of a person proximate to the compute device, geographiclocation, temperature, or a history of similar notifications andresulting user actions.

In Example 34, the subject matter of any one of Examples 20 to 33 mayinclude, wherein modifying the notification in accordance with theaction comprises increasing a volume of the notification.

In Example 35, the subject matter of any one of Examples 20 to 34 mayinclude, wherein modifying the notification in accordance with theaction comprises decreasing a volume of the notification.

In Example 36, the subject matter of any one of Examples 20 to 35 mayinclude, wherein modifying the notification in accordance with theaction comprises changing from an audible notification to a vibratingnotification.

In Example 37, the subject matter of any one of Examples 20 to 36 mayinclude, wherein modifying the notification in accordance with theaction comprises continuing to present the notification without change.

In Example 38, the subject matter of any one of Examples 20 to 37 mayinclude, presenting a feedback interface to a user of the computedevice; receiving feedback from the user; and incorporating the feedbackinto the rules engine.

Example 39 includes at least one machine-readable medium includinginstructions, which when executed by a machine, cause the machine toperform operations of any of the Examples 20-38.

Example 40 includes an apparatus comprising means for performing any ofthe Examples 20-38.

Example 41 includes subject matter (such as a device, apparatus, ormachine) for implementing intelligent notifications comprising: meansfor receiving at a compute device, an indication of an incomingcommunication; means for presenting from the compute device, anotification of the incoming communication; means for determiningwhether a change in ambient noise occurs around the compute device whilethe notification is being presented; means for referencing a rulesengine to determine an action based on whether the change in ambientnoise occurs; and means for modifying the notification in accordancewith the action.

In Example 42, the subject matter of Example 41 may include, wherein theincoming communication is one of a text message, a phone call, an email,or an alarm, or a system message.

In Example 43, the subject matter of any one of Examples 41 to 42 mayinclude, wherein the means for presenting the notification of theincoming communication comprise means for using an audible ring.

In Example 44, the subject matter of any one of Examples 41 to 43 mayinclude, wherein the means for presenting the notification of theincoming communication comprise means for using a vibrating ring.

In Example 45, the subject matter of any one of Examples 41 to 44 mayinclude, wherein the means for presenting the notification of theincoming communication comprise means for displaying the notification ona display.

In Example 46, the subject matter of any one of Examples 41 to 45 mayinclude, wherein the display is integrated into the compute device.

In Example 47, the subject matter of any one of Examples 41 to 46 mayinclude, wherein the means for determining whether the change in ambientnoise occurs around the compute device while the notification is beingpresented comprise: means for activating a microphone to sense ambientnoise before presenting the notification of the incoming communication;means for analyzing ambient noise sensed by the microphone before andduring presenting the notification of the incoming communication; andmeans for determining whether the ambient noise prior to presenting thenotification was different than the ambient noise after presenting thenotification by more than a threshold amount.

In Example 48, the subject matter of any one of Examples 41 to 47 mayinclude, means for identifying a sound token in the ambient noise duringpresenting the notification of the incoming communication; and whereinthe means for referencing the rules engine to determine the action basedon whether the change in ambient noise occurs comprise means for usingthe sound token to determine the action.

In Example 49, the subject matter of any one of Examples 41 to 48 mayinclude, wherein the sound token includes a verbal command, and whereinthe action determined by the rules engine includes reducing anotification severity of the notification and presenting thenotification with the reduced notification severity.

In Example 50, the subject matter of any one of Examples 41 to 49 mayinclude, wherein the notification severity includes a volume level.

In Example 51, the subject matter of any one of Examples 41 to 50 mayinclude, wherein the action is selected from an ordered list of actions,the order based from a less harsh responsive mechanism to a more harshresponsive mechanism.

In Example 52, the subject matter of any one of Examples 41 to 51 mayinclude, wherein the rules engine includes a mapping from an input soundtoken to an output notification type and severity level.

In Example 53, the subject matter of any one of Examples 41 to 52 mayinclude, means for referencing contextual information available to thecompute device; and means for using the contextual information in therules engine to determine the action.

In Example 54, the subject matter of any one of Examples 41 to 53 mayinclude, wherein the contextual information is one of a time, a date,ambient noise level, ambient light level, a motion history of thecompute device, an identity of a sender of the communication, anidentity of a person proximate to the compute device, geographiclocation, temperature, or a history of similar notifications andresulting user actions.

In Example 55, the subject matter of any one of Examples 41 to 54 mayinclude, wherein the means for modifying the notification in accordancewith the action comprise means for increasing a volume of thenotification.

In Example 56, the subject matter of any one of Examples 41 to 55 mayinclude, wherein the means for modifying the notification in accordancewith the action comprise means for decreasing a volume of thenotification.

In Example 57, the subject matter of any one of Examples 41 to 56 mayinclude, wherein the means for modifying the notification in accordancewith the action comprise means for changing from an audible notificationto a vibrating notification.

In Example 58, the subject matter of any one of Examples 41 to 57 mayinclude, wherein the means for modifying the notification in accordancewith the action comprise means for continuing to present thenotification without change.

In Example 59, the subject matter of any one of Examples 41 to 58 mayinclude, means for presenting a feedback interface to a user of thecompute device; means for receiving feedback from the user; and meansfor incorporating the feedback into the rules engine.

The above detailed description includes references to the accompanyingdrawings, which form a part of the detailed description. The drawingsshow, by way of illustration, specific embodiments that may bepracticed. These embodiments are also referred to herein as “examples.”Such examples may include elements in addition to those shown ordescribed. However, also contemplated are examples that include theelements shown or described. Moreover, also contemplated are examplesusing any combination or permutation of those elements shown ordescribed (or one or more aspects thereof), either with respect to aparticular example (or one or more aspects thereof), or with respect toother examples (or one or more aspects thereof) shown or describedherein.

Publications, patents, and patent documents referred to in this documentare incorporated by reference herein in their entirety, as thoughindividually incorporated by reference. In the event of inconsistentusages between this document and those documents so incorporated byreference, the usage in the incorporated reference(s) are supplementaryto that of this document; for irreconcilable inconsistencies, the usagein this document controls.

In this document, the terms “a” or “an” are used, as is common in patentdocuments, to include one or more than one, independent of any otherinstances or usages of “at least one” or “one or more.” In thisdocument, the term “or” is used to refer to a nonexclusive or, such that“A or B” includes “A but not B,” “B but not A,” and “A and B,” unlessotherwise indicated. In the appended claims, the terms “including” and“in which” are used as the plain-English equivalents of the respectiveterms “comprising” and “wherein.” Also, in the following claims, theterms “including” and “comprising” are open-ended, that is, a system,device, article, or process that includes elements in addition to thoselisted after such a term in a claim are still deemed to fall within thescope of that claim. Moreover, in the following claims, the terms“first,” “second,” and “third,” etc. are used merely as labels, and arenot intended to suggest a numerical order for their objects.

The above description is intended to be illustrative, and notrestrictive. For example, the above-described examples (or one or moreaspects thereof) may be used in combination with others. Otherembodiments may be used, such as by one of ordinary skill in the artupon reviewing the above description. The Abstract is to allow thereader to quickly ascertain the nature of the technical disclosure. Itis submitted with the understanding that it will not be used tointerpret or limit the scope or meaning of the claims. Also, in theabove Detailed Description, various features may be grouped together tostreamline the disclosure. However, the claims may not set forth everyfeature disclosed herein as embodiments may feature a subset of saidfeatures. Further, embodiments may include fewer features than thosedisclosed in a particular example. Thus, the following claims are herebyincorporated into the Detailed Description, with a claim standing on itsown as a separate embodiment. The scope of the embodiments disclosedherein is to be determined with reference to the appended claims, alongwith the full scope of equivalents to which such claims are entitled.

What is claimed is:
 1. A system for implementing intelligentnotifications, the system comprising: a communication circuit to receiveat a compute device, an indication of an incoming communication; anotification circuit to present from the compute device, a notificationof the incoming communication; an audio processing circuit to determinewhether a change in ambient noise occurs around the compute device whilethe notification is being presented; and a rules circuit to reference arules engine to determine an action based on whether the change inambient noise occurs during presentation of the notification; whereinthe notification circuit is to modify the notification in accordancewith the action, wherein to determine whether the change in ambientnoise occurs around the compute device while the notification is beingpresented, the audio processing circuit is to: activate a microphone tosense ambient noise before presenting the notification of the incomingcommunication; analyze ambient noise sensed by the microphone before andduring presenting the notification of the incoming communication; anddetermine whether the ambient noise prior to presenting the notificationwas different than the ambient noise after presenting the notificationby more than a threshold amount.
 2. The system of claim 1, wherein theincoming communication is one of a text message, a phone call, an email,or an alarm, or a system message.
 3. The system of claim 1, wherein topresent the notification of the incoming communication, the notificationcircuit is to use an audible ring.
 4. The system of claim 1, wherein topresent the notification of the incoming communication, the notificationcircuit is to use a vibrating ring.
 5. The system of claim 1, wherein topresent the notification of the incoming communication, the notificationcircuit is to display the notification on a display.
 6. The system ofclaim 5, wherein the display is integrated into the compute device. 7.The system of claim 1, wherein the audio processing circuit is toidentify a sound token in the ambient noise during presenting thenotification of the incoming communication; and wherein to reference therules engine to determine the action based on whether the change inambient noise occurs, the rules circuit is to use the sound token todetermine the action.
 8. The system of claim 7, wherein the sound tokenincludes a verbal command, and wherein the action determined by therules engine includes reducing a notification severity of thenotification and presenting the notification with the reducednotification severity.
 9. The system of claim 8, wherein thenotification severity includes a volume level.
 10. The system of claim1, wherein the action is selected from an ordered list of actions, theorder based from a less harsh responsive mechanism to a more harshresponsive mechanism.
 11. The system of claim 1, wherein the rulesengine includes a mapping from an input sound token to an outputnotification type and severity level.
 12. A method of implementingintelligent notifications, the method comprising: receiving at a computedevice, an indication of an incoming communication; presenting from thecompute device, a notification of the incoming communication;determining whether a change in ambient noise occurs around the computedevice while the notification is being presented; referencing a rulesengine to determine an action based on whether the change in ambientnoise occurs during presentation of the notification; and modifying thenotification in accordance with the action, wherein determining whetherthe change in ambient noise occurs around the compute device while thenotification is being presented comprises: activating a microphone tosense ambient noise before presenting the notification of the incomingcommunication; analyzing ambient noise sensed by the microphone beforeand during presenting the notification of the incoming communication;and determining whether the ambient noise prior to presenting thenotification was different than the ambient noise after presenting thenotification by more than a threshold amount.
 13. The method of claim12, wherein the incoming communication is one of a text message, a phonecall, an email, or an alarm, or a system message.
 14. The method ofclaim 13, wherein presenting the notification of the incomingcommunication comprises displaying the notification on a display. 15.The method of claim 12, wherein presenting the notification of theincoming communication comprises using an audible ring.
 16. The methodof claim 12, wherein presenting the notification of the incomingcommunication comprises using a vibrating ring.
 17. At least onenon-transitory machine-readable medium including instructions forimplementing intelligent notifications, which when executed by amachine, cause the machine to: receive at a compute device, anindication of an incoming communication; present from the computedevice, a notification of the incoming communication; determine whethera change in ambient noise occurs around the compute device while thenotification is being presented; reference a rules engine to determinean action based on whether the change in ambient noise occurs duringpresentation of the notification; and modify the notification inaccordance with the action, wherein the instructions to determinewhether the change in ambient noise occurs around the compute devicewhile the notification is being presented comprise instructions to:activate a microphone to sense ambient noise before presenting thenotification of the incoming communication; analyze ambient noise sensedby the microphone before and during presenting the notification of theincoming communication; and determine whether the ambient noise prior topresenting the notification was different than the ambient noise afterpresenting the notification by more than a threshold amount.
 18. The atleast one non-transitory machine-readable medium of claim 17, furthercomprising instructions to: identify a sound token in the ambient noiseduring presenting the notification of the incoming communication; andwherein the instructions to reference the rules engine to determine theaction based on whether the change in ambient noise occurs compriseinstructions to use the sound token to determine the action.
 19. The atleast one non-transitory machine-readable medium of claim 18, whereinthe sound token includes a verbal command, and wherein the actiondetermined by the rules engine includes reducing a notification severityof the notification and presenting the notification with the reducednotification severity.
 20. The at least one non-transitorymachine-readable medium of claim 19, wherein the notification severityincludes a volume level.
 21. The at least one non-transitorymachine-readable medium of claim 17, wherein the action is selected froman ordered list of actions, the order based from a less harsh responsivemechanism to a more harsh responsive mechanism.
 22. The at least onenon-transitory machine-readable medium of claim 17, wherein the rulesengine includes a mapping from an input sound token to an outputnotification type and severity level.
 23. The at least onenon-transitory machine-readable medium of claim 17, further comprisinginstructions to: present a feedback interface to a user of the computedevice; receive feedback from the user; and incorporate the feedbackinto the rules engine.